/**
 * 给定二维数组，由xo构成，问满足条件的三元组：
 * 1. 三个不同格子
 * 2. 均为o
 * 3. 同一行2个
 * 4. 同一列2个
 * 按行和列统计一下o的数量，然后枚举一下即可。
 * O(N^2)
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using vi = vector<int>;
using llt = long long;

int N;
vector<string> A;

llt proc(){
    vi cr(N, 0), cc(N, 0);
    for(int i=0;i<N;++i)for(int j=0;j<N;++j){
        if(A[i][j] == 'o') ++cr[i], ++cc[j];
    }

    llt ans = 0;
    for(int i=0;i<N;++i)for(int j=0;j<N;++j){
        if(A[i][j] == 'o'){
            ans += (cr[i] - 1) * (cc[j] - 1);
        }
    }
    return ans;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    cin >> N;
    A.assign(N, "");
    for(auto & s : A) cin >> s;
    cout << proc() << endl;
    return 0;
}